using System;
using System.Collections.Generic;
using System.Text;
using Cobalt75.GreyMatter;

namespace Cobalt75.GreyMatter.Tester.TestTypes
{
    [
       GMTable(
           TableName = "TESTA",
           TableId = "TESTA",
           ApproxSize = 25,
           Priority = 501
           )
       ]
    public class TestTypeA : GMTable
    {
        public TestTypeA(GMCommunicator com)
            : base(com)
        {
            
        }
        [GMColumn]
        private bool pBoolean;
        public bool Boolean
        {
            get
            {
                return (pBoolean);
            }
            set
            {

                pBoolean = value;
                Changed();
            }
        }
        [GMColumn]
        private byte pByte;
        public byte Byte
        {
            get
            {
                return (pByte);
            }
            set
            {

                pByte = value;
                Changed();
            }
        }
        [GMColumn]
        private sbyte pSByte;
        public sbyte SByte
        {
            get
            {
                return (pSByte);
            }
            set
            {

                pSByte = value;
                Changed();
            }
        }

        [GMColumn]
        private char pChar;
        public char Char
        {
            get
            {
                return (pChar);
            }
            set
            {

                pChar = value;
                Changed();
            }
        }
        [GMColumn]
        private Decimal pDecimal;
        public Decimal Decimal
        {
            get
            {
                return (pDecimal);
            }
            set
            {

                pDecimal = value;
                Changed();
            }
        }
        [GMColumn]
        private Double pDouble;
        public Double Double
        {
            get
            {
                return (pDouble);
            }
            set
            {

                pDouble = value;
                Changed();
            }
        }
        [GMColumn]
        private DayOfWeek pEnumDayOfWeek;
        public DayOfWeek EnumDayOfWeek
        {
            get
            {
                return (pEnumDayOfWeek);
            }
            set
            {

                pEnumDayOfWeek = value;
                Changed();
            }
        }
        [GMColumn]
        private float pFloat;
        public float Float
        {
            get
            {
                return (pFloat);
            }
            set
            {

                pFloat = value;
                Changed();
            }
        }
        [GMColumn]
        private Int16 pInt16;
        public Int16 Int16
        {
            get
            {
                return (pInt16);
            }
            set
            {

                pInt16 = value;
                Changed();
            }
        }
        [GMColumn]
        private Int32 pInt32;
        public Int32 Int32
        {
            get
            {
                return (pInt32);
            }
            set
            {

                pInt32 = value;
                Changed();
            }
        }
        [GMColumn]
        private Int64 pInt64;
        public Int64 Int64
        {
            get
            {
                return (pInt64);
            }
            set
            {

                pInt64 = value;
                Changed();
            }
        }
        [GMColumn]
        private UInt16 pUInt16;
        public UInt16 UInt16
        {
            get
            {
                return (pUInt16);
            }
            set
            {

                pUInt16 = value;
                Changed();
            }
        }
        [GMColumn]
        private UInt32 pUInt32;
        public UInt32 UInt32
        {
            get
            {
                return (pUInt32);
            }
            set
            {

                pUInt32 = value;
                Changed();
            }
        }
        [GMColumn]
        private UInt64 pUInt64;
        public UInt64 UInt64
        {
            get
            {
                return (pUInt64);
            }
            set
            {

                pUInt64 = value;
                Changed();
            }
        }
       
        [GMColumn(LengthType = GMColumnLength.Undefined)]
        private string pTextA;
        public string TextA
        {
            get
            {
                return (pTextA);
            }
            set
            {

                pTextA = value;
                Changed();
            }
        }

        [GMColumn(LengthType = GMColumnLength.Small)]
        private string pTextB;
        public string TextB
        {
            get
            {
                return (pTextB);
            }
            set
            {

                pTextB = value;
                Changed();
            }
        }
        
        [GMColumn(LengthType = GMColumnLength.Medium)]
        private string pTextC;
        public string TextC
        {
            get
            {
                return (pTextC);
            }
            set
            {

                pTextC = value;
                Changed();
            }
        }
        
        [GMColumn(LengthType = GMColumnLength.Large)]
        private string pTextD;
        public string TextD
        {
            get
            {
                return (pTextD);
            }
            set
            {

                pTextD = value;
                Changed();
            }
        }
        
        [GMColumn(LengthType = GMColumnLength.Defined,ColumnLength=30)]
        private string pTextE;
        public string TextE
        {
            get
            {
                return (pTextE);
            }
            set
            {

                pTextE = value;
                Changed();
            }
        }
        
    }
}
